<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class TestResponseController extends Controller
{
    /**
     * 基本响应
     */
    public function testResponse(){
        // 响应字符串：
        return 'Hello World';

        // 返回一个数组，自动转为JSON：
        return ['name'=>'jack', 'sex'=>1, 'age'=>20];

        // 直接返回一个数据集，自动转为JSON：
        $user = User::all();
        return $user;

        // 在响应中附加 header 信息：
        return response($user,201)->header('Content-Type', 'text/plain');

        // 重定向到外部域名：
        return redirect()->away('https://www.baidu.com');
    }
    /**
     * 文件下载（把服务器上的文件，下载到本地）
     */
    public function testDownFile(){
        return response()->download(base_path().'/storage/app/public/downloadFile.txt');
    }
    /**
     * 流式下载（把动态生成的内容，下载到本地）
     */
    public function testStream(){
        return response()->streamDownload(function () {
            for($i = 1; $i<=10; $i++){
                echo "第 $i 行 \r\n";
            }
        }, 'downloadFile.txt');
    }
    /**
     * 文件响应（把服务器上的文件内容，显示在浏览器）
     */
    public function testFile(){
        return response()->file(base_path().'/storage/app/public/downloadFile.txt');
    }
}
